﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace SharpSoft.Documentation.Html.CSS
{
    /// <summary>
    /// Css属性定义
    /// </summary>
    public static class CssProperties
    {
        #region CSS3.0
         
        public const string BorderImage = "border-image";
        public const string BorderRadius = "border-radius";
        public const string BoxShadow = "box-shadow";
        public const string BackgroundOrigin = "background-origin";
        public const string BackgroundClip = "background-clip";
        public const string BackgroundSize = "background-size";
        /// <summary>
        /// 定义元素的不透明度
        /// </summary>
        public const string Opacity = "opacity";
        /// <summary>
        /// 文本阴影
        /// </summary>
        public const string TextShadow = "text-shadow ";
        /// <summary>
        /// 文字的裁剪模式
        /// </summary>
        /// <remarks>clip：
        ///不显示省略标记（...），而是简单的裁切。
        ///ellipsis：
        ///当对象内文本溢出时显示省略标记（...）</remarks>
        public const string TextOverflow = "text-overflow";
        /// <summary>
        /// 控制文本换行
        /// </summary>
        /// <remarks>
        /// normal：
        ///控制连续文本换行。
        ///break-word：
        ///内容将在边界内换行。如果需要，词内换行（word-break）也会发生。 
        /// </remarks>
        public const string WordWrap = "word-wrap";

        #endregion

        #region 字体

        /// <summary>
        /// 字形族群名称
        /// </summary>
        /// <remarks>font-family: [[<family-name> | <generic-family>],]* [<family-name> | <generic-family>]</remarks>
        /// <example>P { font-family: "New Century Schoolbook", Times, serif }</example>
        public const string FontFamily = "font-family";
        /// <summary>
        /// 字体样式
        /// </summary>
        /// <remarks>normal | italic | oblique</remarks>
        /// <example>H1 { font-style: oblique }
        ///P  { font-style: normal }</example>
        public const string FontStyle = "font-style";
        /// <summary>
        /// 字体变形
        /// </summary>
        /// <remarks> normal | small-caps</remarks>
        /// <example>SPAN { font-variant: small-caps }</example>
        public const string FontVariant = "font-variant";
        /// <summary>
        /// 字体权重
        /// </summary>
        /// <remarks>normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900</remarks>
        /// <example>H1 { font-weight: 800 }
        ///P  { font-weight: normal }</example>
        public const string FontWeight = "font-weight";
        /// <summary>
        /// 字体大小
        /// </summary>
        /// <remarks>font-size: <absolute-size> | <relative-size> | <length> | <percentage>
        /// <absolute-size>
        /// xx-small | x-small | small | medium | large | x-large | xx-large
        /// <relative-size>
        /// larger | smaller
        /// <length>
        /// <percentage> (in relation to parent element) 
        /// </remarks>
        /// <example>H1     { font-size: large }
        ///P      { font-size: 12pt }
        ///LI     { font-size: 90% }
        ///STRONG { font-size: larger }</example>
        public const string FontSize = "font-size";
        /// <summary>
        /// 定义字体
        /// </summary>
        /// <remarks><![CDATA[[ <font-style> || <font-variant> || <font-weight> ]? <font-size> [ / <line-height> ]? <font-family>]]> </remarks>
        /// <example>P { font: italic bold 12pt/14pt Times, serif }</example>
        public const string Font = "font";

        #endregion

        #region 前景/背景

        /// <summary>
        /// 定义元素的颜色
        /// </summary>
        /// <remarks> </remarks>
        /// <example></example>
        public const string Color = "color";
        /// <summary>
        /// 定义元素的背景色
        /// </summary>
        public const string BackgroundColor = "background-color";
        /// <summary>
        /// 定义元素的背景图像
        /// </summary>
        public const string BackgroundImage = "background-image";
        /// <summary>
        /// 背景重复
        /// </summary>
        /// <remarks>repeat | repeat-x | repeat-y | no-repeat</remarks>
        public const string BackgroundRepeat = "background-repeat";
        /// <summary>
        /// 定义背景是滚动还是固定
        /// </summary>
        /// <remarks>scroll | fixed</remarks>
        public const string BackgroundAttachment = "background-attachment";
        /// <summary>
        /// 定义背景的位置
        /// </summary>
        /// <remarks>[<percentage> | <length>]{1,2} | [top | center | bottom] || [left | center | right]</remarks>
        public const string BackgroundPosition = "background-position";
        /// <summary>
        /// 定义元素的背景属性
        /// </summary>
        /// <remarks><background-color> || <background-image> || <background-repeat> || <background-attachment> || <background-position></remarks>
        public const string Background = "background";

        #endregion

        #region 文本属性//TODO:不完整

        public const string WordSpacing = "word-spacing";

        public const string LetterSpacing = "letter-spacing";

        public const string TextDecoration = "text-decoration";

        public const string TextAlign = "text-align";
        #endregion

        #region 块元素属性

        public const string MarginTop = "margin-top";
        public const string MarginRight = "margin-right";
        public const string MarginBottom = "margin-bottom";
        public const string MarginLeft = "margin-left";
        public const string Margin  = "margin";

        public const string PaddingTop = "padding-top";
        public const string PaddingRight = "padding-right";
        public const string PaddingLeft= "padding-left";
        public const string PaddingBottom = "padding-bottom";
        public const string Padding= "padding";

        public const string BorderWidthTop = "border-top-width";
        public const string BorderWidthRight = "border-right-width";
        public const string BorderWidthLeft = "border-left-width";
        public const string BorderWidthBottom = "border-bottom-width";
        public const string BorderWidth = "border-width";

        public const string BorderColor = "border-color";

        public const string BorderTop = "border-top";
        public const string BorderRight = "border-right";
        public const string BorderLeft = "border-left";
        public const string BorderBottom= "border-bottom";
        public const string Border = "border";

        public const string Width = "width";
        public const string Height = "height";

        /// <summary>
        /// 定义块元素的浮动
        /// </summary>
        public const string Float = "float";

        public const string Clear = "clear";
        /// <summary>
        /// 定义元素的显示模式
        /// </summary>
        public const string Display="display";
         
        public const string Whitespace = "white-space";
         
        /// <summary>
        /// 元素的垂直布局
        /// </summary>
        public const string VerticalAlign = "vertical-align";

        #endregion

        #region 特定元素属性//TODO:不完整

        public const string ListStyleType = "list-style-type";
        public const string ListStyleImage = "list-style-image";
        public const string ListStylePosition = "list-style-position";
        public const string ListStyle = "list-style"; 
        #endregion

    }
}
